Modern computing systems are typically tasked with solving large computational problems, such as effectively processing large amounts of data. To do so, such systems can operate in a distributed system environment. A distributed computing environment can include components or nodes that may be located on networked computers, which can communicate and/or coordinate with one another by exchanging messages in order to achieve a common goal. Distributed computing systems are typically characterized by concurrency of components, lack of a global clock, and independent failure of components. In distributed systems, data can be written to and read from data streams representing an ordered sequence of messages, where data can be distributed among many different computing locations.